// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.

package org.jetbrains.kotlin.idea.k2.refactoring.introduce;

import com.intellij.testFramework.TestDataPath;
import org.jetbrains.kotlin.idea.base.plugin.KotlinPluginMode;
import org.jetbrains.kotlin.idea.base.test.TestRoot;
import org.jetbrains.kotlin.idea.test.JUnit3RunnerWithInners;
import org.jetbrains.kotlin.idea.test.KotlinTestUtils;
import org.jetbrains.kotlin.test.TestMetadata;
import org.junit.runner.RunWith;

/**
 * This class is generated by {@link org.jetbrains.kotlin.testGenerator.generator.TestGenerator}.
 * DO NOT MODIFY MANUALLY.
 */
@SuppressWarnings("all")
@TestRoot("refactorings/kotlin.refactorings.tests.k2")
@TestDataPath("$CONTENT_ROOT")
@RunWith(JUnit3RunnerWithInners.class)
@TestMetadata("../../idea/tests/testData/refactoring/introduceProperty")
public abstract class K2IntroducePropertyTestGenerated extends AbstractK2IntroducePropertyTest {
    @RunWith(JUnit3RunnerWithInners.class)
    @TestMetadata("../../idea/tests/testData/refactoring/introduceProperty/script")
    public static class Script extends AbstractK2IntroducePropertyTest {
        @java.lang.Override
        @org.jetbrains.annotations.NotNull
        public final KotlinPluginMode getPluginMode() {
            return KotlinPluginMode.K2;
        }

        private void runTest(String testDataFilePath) throws Exception {
            KotlinTestUtils.runTest(this::doIntroducePropertyTest, this, testDataFilePath);
        }

        @TestMetadata("ClassInScript.kts")
        public void testClassInScript() throws Exception {
            runTest("../../idea/tests/testData/refactoring/introduceProperty/script/ClassInScript.kts");
        }

        @TestMetadata("ExpressionPart.kts")
        public void testExpressionPart() throws Exception {
            runTest("../../idea/tests/testData/refactoring/introduceProperty/script/ExpressionPart.kts");
        }

        @TestMetadata("TopLevelExpression.kts")
        public void testTopLevelExpression() throws Exception {
            runTest("../../idea/tests/testData/refactoring/introduceProperty/script/TopLevelExpression.kts");
        }
    }

    @RunWith(JUnit3RunnerWithInners.class)
    @TestMetadata("../../idea/tests/testData/refactoring/introduceProperty/stringTemplates")
    public static class StringTemplates extends AbstractK2IntroducePropertyTest {
        @java.lang.Override
        @org.jetbrains.annotations.NotNull
        public final KotlinPluginMode getPluginMode() {
            return KotlinPluginMode.K2;
        }

        private void runTest(String testDataFilePath) throws Exception {
            KotlinTestUtils.runTest(this::doIntroducePropertyTest, this, testDataFilePath);
        }

        @TestMetadata("brokenEntryWithBlockExpr.kt")
        public void testBrokenEntryWithBlockExpr() throws Exception {
            runTest("../../idea/tests/testData/refactoring/introduceProperty/stringTemplates/brokenEntryWithBlockExpr.kt");
        }

        @TestMetadata("brokenEntryWithExpr.kt")
        public void testBrokenEntryWithExpr() throws Exception {
            runTest("../../idea/tests/testData/refactoring/introduceProperty/stringTemplates/brokenEntryWithExpr.kt");
        }

        @TestMetadata("brokenEscapeEntry.kt")
        public void testBrokenEscapeEntry() throws Exception {
            runTest("../../idea/tests/testData/refactoring/introduceProperty/stringTemplates/brokenEscapeEntry.kt");
        }

        @TestMetadata("extractFalse.kt")
        public void testExtractFalse() throws Exception {
            runTest("../../idea/tests/testData/refactoring/introduceProperty/stringTemplates/extractFalse.kt");
        }

        @TestMetadata("extractIntegerLiteral.kt")
        public void testExtractIntegerLiteral() throws Exception {
            runTest("../../idea/tests/testData/refactoring/introduceProperty/stringTemplates/extractIntegerLiteral.kt");
        }

        @TestMetadata("extractTrue.kt")
        public void testExtractTrue() throws Exception {
            runTest("../../idea/tests/testData/refactoring/introduceProperty/stringTemplates/extractTrue.kt");
        }

        @TestMetadata("fullContent.kt")
        public void testFullContent() throws Exception {
            runTest("../../idea/tests/testData/refactoring/introduceProperty/stringTemplates/fullContent.kt");
        }

        @TestMetadata("fullEntryWithBlockExpr.kt")
        public void testFullEntryWithBlockExpr() throws Exception {
            runTest("../../idea/tests/testData/refactoring/introduceProperty/stringTemplates/fullEntryWithBlockExpr.kt");
        }

        @TestMetadata("fullEntryWithSimpleName.kt")
        public void testFullEntryWithSimpleName() throws Exception {
            runTest("../../idea/tests/testData/refactoring/introduceProperty/stringTemplates/fullEntryWithSimpleName.kt");
        }

        @TestMetadata("multipleEntriesWithPrefix.kt")
        public void testMultipleEntriesWithPrefix() throws Exception {
            runTest("../../idea/tests/testData/refactoring/introduceProperty/stringTemplates/multipleEntriesWithPrefix.kt");
        }

        @TestMetadata("multipleEntriesWithSubstring.kt")
        public void testMultipleEntriesWithSubstring() throws Exception {
            runTest("../../idea/tests/testData/refactoring/introduceProperty/stringTemplates/multipleEntriesWithSubstring.kt");
        }

        @TestMetadata("multipleEntriesWithSuffix.kt")
        public void testMultipleEntriesWithSuffix() throws Exception {
            runTest("../../idea/tests/testData/refactoring/introduceProperty/stringTemplates/multipleEntriesWithSuffix.kt");
        }

        @TestMetadata("rawTemplateWithSubstring.kt")
        public void testRawTemplateWithSubstring() throws Exception {
            runTest("../../idea/tests/testData/refactoring/introduceProperty/stringTemplates/rawTemplateWithSubstring.kt");
        }

        @TestMetadata("singleEntryPrefix.kt")
        public void testSingleEntryPrefix() throws Exception {
            runTest("../../idea/tests/testData/refactoring/introduceProperty/stringTemplates/singleEntryPrefix.kt");
        }

        @TestMetadata("singleEntrySubstring.kt")
        public void testSingleEntrySubstring() throws Exception {
            runTest("../../idea/tests/testData/refactoring/introduceProperty/stringTemplates/singleEntrySubstring.kt");
        }

        @TestMetadata("singleEntrySuffix.kt")
        public void testSingleEntrySuffix() throws Exception {
            runTest("../../idea/tests/testData/refactoring/introduceProperty/stringTemplates/singleEntrySuffix.kt");
        }
    }

    @RunWith(JUnit3RunnerWithInners.class)
    @TestMetadata("../../idea/tests/testData/refactoring/introduceProperty")
    public static class Uncategorized extends AbstractK2IntroducePropertyTest {
        @java.lang.Override
        @org.jetbrains.annotations.NotNull
        public final KotlinPluginMode getPluginMode() {
            return KotlinPluginMode.K2;
        }

        private void runTest(String testDataFilePath) throws Exception {
            KotlinTestUtils.runTest(this::doIntroducePropertyTest, this, testDataFilePath);
        }

        @TestMetadata("conflictWithParentClass.kt")
        public void testConflictWithParentClass() throws Exception {
            runTest("../../idea/tests/testData/refactoring/introduceProperty/conflictWithParentClass.kt");
        }

        @TestMetadata("extractExtensionWithInitializer.kt")
        public void testExtractExtensionWithInitializer() throws Exception {
            runTest("../../idea/tests/testData/refactoring/introduceProperty/extractExtensionWithInitializer.kt");
        }

        @TestMetadata("extractFromDefaultValueInConstructor.kt")
        public void testExtractFromDefaultValueInConstructor() throws Exception {
            runTest("../../idea/tests/testData/refactoring/introduceProperty/extractFromDefaultValueInConstructor.kt");
        }

        @TestMetadata("extractFromDefaultValueInFun.kt")
        public void testExtractFromDefaultValueInFun() throws Exception {
            runTest("../../idea/tests/testData/refactoring/introduceProperty/extractFromDefaultValueInFun.kt");
        }

        @TestMetadata("extractLazyExtension.kt")
        public void testExtractLazyExtension() throws Exception {
            runTest("../../idea/tests/testData/refactoring/introduceProperty/extractLazyExtension.kt");
        }

        @TestMetadata("extractLazyMultipleExpressions.kt")
        public void testExtractLazyMultipleExpressions() throws Exception {
            runTest("../../idea/tests/testData/refactoring/introduceProperty/extractLazyMultipleExpressions.kt");
        }

        @TestMetadata("extractLazyToClass.kt")
        public void testExtractLazyToClass() throws Exception {
            runTest("../../idea/tests/testData/refactoring/introduceProperty/extractLazyToClass.kt");
        }

        @TestMetadata("extractLazyToFile.kt")
        public void testExtractLazyToFile() throws Exception {
            runTest("../../idea/tests/testData/refactoring/introduceProperty/extractLazyToFile.kt");
        }

        @TestMetadata("extractLazyToInterface.kt")
        public void testExtractLazyToInterface() throws Exception {
            runTest("../../idea/tests/testData/refactoring/introduceProperty/extractLazyToInterface.kt");
        }

        @TestMetadata("extractLazyWithBlock.kt")
        public void testExtractLazyWithBlock() throws Exception {
            runTest("../../idea/tests/testData/refactoring/introduceProperty/extractLazyWithBlock.kt");
        }

        @TestMetadata("extractLazyWithCallSiteReturn.kt")
        public void testExtractLazyWithCallSiteReturn() throws Exception {
            runTest("../../idea/tests/testData/refactoring/introduceProperty/extractLazyWithCallSiteReturn.kt");
        }

        @TestMetadata("extractToClassWithNameClash.kt")
        public void testExtractToClassWithNameClash() throws Exception {
            runTest("../../idea/tests/testData/refactoring/introduceProperty/extractToClassWithNameClash.kt");
        }

        @TestMetadata("extractToClassWithNameClashAndAnonymousInitializer.kt")
        public void testExtractToClassWithNameClashAndAnonymousInitializer() throws Exception {
            runTest("../../idea/tests/testData/refactoring/introduceProperty/extractToClassWithNameClashAndAnonymousInitializer.kt");
        }

        @TestMetadata("extractToFileWithNameClash.kt")
        public void testExtractToFileWithNameClash() throws Exception {
            runTest("../../idea/tests/testData/refactoring/introduceProperty/extractToFileWithNameClash.kt");
        }

        @TestMetadata("extractToFunction.kt")
        public void testExtractToFunction() throws Exception {
            runTest("../../idea/tests/testData/refactoring/introduceProperty/extractToFunction.kt");
        }

        @TestMetadata("extractUnit.kt")
        public void testExtractUnit() throws Exception {
            runTest("../../idea/tests/testData/refactoring/introduceProperty/extractUnit.kt");
        }

        @TestMetadata("extractWithGetterMultipleExpressions.kt")
        public void testExtractWithGetterMultipleExpressions() throws Exception {
            runTest("../../idea/tests/testData/refactoring/introduceProperty/extractWithGetterMultipleExpressions.kt");
        }

        @TestMetadata("extractWithGetterToClass.kt")
        public void testExtractWithGetterToClass() throws Exception {
            runTest("../../idea/tests/testData/refactoring/introduceProperty/extractWithGetterToClass.kt");
        }

        @TestMetadata("extractWithGetterToFile.kt")
        public void testExtractWithGetterToFile() throws Exception {
            runTest("../../idea/tests/testData/refactoring/introduceProperty/extractWithGetterToFile.kt");
        }

        @TestMetadata("extractWithGetterToInterface.kt")
        public void testExtractWithGetterToInterface() throws Exception {
            runTest("../../idea/tests/testData/refactoring/introduceProperty/extractWithGetterToInterface.kt");
        }

        @TestMetadata("extractWithInitializerAndBlock.kt")
        public void testExtractWithInitializerAndBlock() throws Exception {
            runTest("../../idea/tests/testData/refactoring/introduceProperty/extractWithInitializerAndBlock.kt");
        }

        @TestMetadata("extractWithInitializerAndCallSiteReturn.kt")
        public void testExtractWithInitializerAndCallSiteReturn() throws Exception {
            runTest("../../idea/tests/testData/refactoring/introduceProperty/extractWithInitializerAndCallSiteReturn.kt");
        }

        @TestMetadata("extractWithInitializerAndSingleElementBlock.kt")
        public void testExtractWithInitializerAndSingleElementBlock() throws Exception {
            runTest("../../idea/tests/testData/refactoring/introduceProperty/extractWithInitializerAndSingleElementBlock.kt");
        }

        @TestMetadata("extractWithInitializerMultipleExpressions.kt")
        public void testExtractWithInitializerMultipleExpressions() throws Exception {
            runTest("../../idea/tests/testData/refactoring/introduceProperty/extractWithInitializerMultipleExpressions.kt");
        }

        @TestMetadata("extractWithInitializerToClass.kt")
        public void testExtractWithInitializerToClass() throws Exception {
            runTest("../../idea/tests/testData/refactoring/introduceProperty/extractWithInitializerToClass.kt");
        }

        @TestMetadata("extractWithInitializerToFile.kt")
        public void testExtractWithInitializerToFile() throws Exception {
            runTest("../../idea/tests/testData/refactoring/introduceProperty/extractWithInitializerToFile.kt");
        }

        @TestMetadata("extractWithInitializerToInterface.kt")
        public void testExtractWithInitializerToInterface() throws Exception {
            runTest("../../idea/tests/testData/refactoring/introduceProperty/extractWithInitializerToInterface.kt");
        }

        @TestMetadata("extractWithParams.kt")
        public void testExtractWithParams() throws Exception {
            runTest("../../idea/tests/testData/refactoring/introduceProperty/extractWithParams.kt");
        }

        @TestMetadata("fromTopLevel.kt")
        public void testFromTopLevel() throws Exception {
            runTest("../../idea/tests/testData/refactoring/introduceProperty/fromTopLevel.kt");
        }

        @TestMetadata("functionalType.kt")
        public void testFunctionalType() throws Exception {
            runTest("../../idea/tests/testData/refactoring/introduceProperty/functionalType.kt");
        }

        @TestMetadata("kt21530.kt")
        public void testKt21530() throws Exception {
            runTest("../../idea/tests/testData/refactoring/introduceProperty/kt21530.kt");
        }

        @TestMetadata("kt24615.kt")
        public void testKt24615() throws Exception {
            runTest("../../idea/tests/testData/refactoring/introduceProperty/kt24615.kt");
        }

        @TestMetadata("primaryConstructorParameterReference.kt")
        public void testPrimaryConstructorParameterReference() throws Exception {
            runTest("../../idea/tests/testData/refactoring/introduceProperty/primaryConstructorParameterReference.kt");
        }

        @TestMetadata("replaceDuplicates.kt")
        public void testReplaceDuplicates() throws Exception {
            runTest("../../idea/tests/testData/refactoring/introduceProperty/replaceDuplicates.kt");
        }

        @TestMetadata("syntaxErrors.kt")
        public void testSyntaxErrors() throws Exception {
            runTest("../../idea/tests/testData/refactoring/introduceProperty/syntaxErrors.kt");
        }

        @TestMetadata("typeParameterNotResolvableInTargetScope.kt")
        public void testTypeParameterNotResolvableInTargetScope() throws Exception {
            runTest("../../idea/tests/testData/refactoring/introduceProperty/typeParameterNotResolvableInTargetScope.kt");
        }

        @TestMetadata("typeParameterResolvableInTargetScope.kt")
        public void testTypeParameterResolvableInTargetScope() throws Exception {
            runTest("../../idea/tests/testData/refactoring/introduceProperty/typeParameterResolvableInTargetScope.kt");
        }
    }
}
